package com.mt.mtyx.product.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mt.mtyx.entity.product.Category;
import com.mt.mtyx.vo.product.CategoryQueryVo;

import java.util.List;

/**
 * @author WMT
 * @Date 2023/7/20 10:37
 */
public interface CategoryService extends IService<Category> {

    /**
     * 分页条件查询商品分类列表
     *
     * @param categoryPage
     * @param queryVo
     * @return
     */
    IPage<Category> selectAll(Page<Category> categoryPage, CategoryQueryVo queryVo);

    /**
     * 获取商品分类详情
     *
     * @param id
     * @return
     */
    Category getDetails(Long id);

    /**
     * 根据名称统计数量
     *
     * @param name
     * @return
     */
    Long countByName(String name);

    /**
     * 判断名称是否存在
     *
     * @param categoryName
     * @return
     */
    boolean existsByName(String categoryName);

    /**
     * 新增商品分类
     *
     * @param category
     * @return
     */
    int insert(Category category);

    /**
     * 删除商品分类
     *
     * @param id
     * @return
     */
    int delete(Long id);

    /**
     * 批量删除商品分类
     *
     * @param ids
     * @return
     */
    int batchDelete(List<Long> ids);

    /**
     * 修改商品分类
     *
     * @param category
     * @return
     */
    int update(Category category);

    /**
     * 获取全部商品分类
     *
     * @return
     */
    List<Category> findAllList();

    /**
     * 根据分类id列表 批量查询分类数据
     *
     * @param ids
     * @return
     */
    List<Category> getCategoryListByIds(List<Long> ids);
}
